The communications industry is rapidly changing to adjust to emerging technologies and ever increasing customer demand. This customer demand for new applications and increased performance of existing applications is driving communications network and system providers to employ networks and systems having greater speed and capacity (e.g., greater bandwidth). In trying to achieve these goals, a common approach taken by many communications providers is to use packet switching technology. Note, nothing described or referenced in this document is admitted as prior art to this application unless explicitly so stated.
A known technique of communicating information from a first device to a second device is through the use of a descriptor list. The first device populates a data block that is desired to be communicated to the second device. The first device updates a next entry in the descriptor list to contain the size of the data block and a pointer to its location in memory. The first device then writes the identification of the entry into a posted register in the second device, thus informing the second device of the descriptor. The second device then can retrieve the descriptor list entry, and then subsequently retrieve the data block based on the information. As the descriptor list is ordered, such as that of a ring buffer, the second device maintains a value representing the descriptor list entry last read by it, and the descriptor entry identified in the posted register represents the end of the ring buffer (e.g., latest data block to be read). Another known prior technique uses the same approach, but with the descriptor list located in the second device.